﻿#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
//1.正常命名空间的定义
//int wit = 5;
//namespace home
//{
//	//命名空间中可以定义变量/函数/类型
//	int wit = 9;
//
//	int Add(int left, int right)
//	{
//		return left + right;
//	}
//
//	struct Node
//	{
//		struct Node* next;
//		int val;
//	};
//
//}
//int main()
//{
//	// 这⾥默认是访问的是全局的wit
//	printf("%d\n", wit);
//	// 这⾥指定bit命名空间中的rand
//	printf("%d\n", home::wit);
//
//	return 0;
//}
//2.命名空间的嵌套定义
//namespace wit
//{
//	namespace pigg
//	{
//		int a = 8;
//		int Add(int left, int right)
//		{
//			return (left + right) * 10;
//		}
//	}
//	namespace ny
//	{
//		int b = 3;
//	}
//}
//
//int main()
//{
//
//	printf("%d\n", wit::pigg::a);
//	printf("%d\n", wit::pigg::Add(1,2));
//	printf("%d\n", wit::ny::b);
//	return 0;
//}

//namespace gls
//{
//	int a = 1;
//	int b = 3;
//}

//1.制定命名空间访问
//int main()
//{
//	//访问命名空间用指定的访问符(::)双冒号
//	printf("%d\n", gls::a);
//}

//2.将命名空间中某个成员展开
//using gls::b;
//int main()
//{
//	printf("%d\n", gls::a);
//	printf("%d\n", b);
//}

////3.展开全部成员
//using namespace gls;
//int main()
//{
//	printf("%d\n", a);
//	printf("%d\n", b);
//}


#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;

//int main()
//{
//	//int a = 5;
//	//double b = 0.4;
//	//char c = 'u';
//
//	//cout << a  << " " << b << " " << c << endl;
//	//std::cout << a << " " << b << " " << c << std::endl;
//	//
//	//scanf("%d%lf", &a, &b);
//	//printf("%d %lf\n", a, b);
//	//// 可以⾃动识别变量的类型
//
//	//cin >> a;
//	//cin >> b >> c;
//	//cout << a << endl;
//	//cout << b << "  " << c << endl;
//	//return 0;
//
//
//}
//
//void Func(int a = 0)
//{
//	cout << a << endl;
//}
////全缺省
//void Func1(int a = 10, int b = 20, int c = 30)
//{
//	cout << "a = " << a << endl;
//	cout << "b = " << b << endl;
//	cout << "c = " << c << endl << endl;
//}
//// 半缺省：半缺省参数必须从右往左依次连续缺省，不能间隔跳跃给缺省值
//
//void Func2(int a, int b = 10, int c = 20)
//{
//	cout << "a = " << a << endl;
//	cout << "b = " << b << endl;
//	cout << "c = " << c << endl << endl;
//}
//
//int main()
//{
//	Func();
//	// 没有传参时，使⽤参数的默认值
//
//	Func(10);
//	// 传参时，使⽤指定的实参
//
//	 Func1(1,2);
// Func1(1,2,3);
// Func2(100);
// Func2(100, 200,300);
//	return 0;
//}

void f1()
{
	cout << "f()" << endl;
}
void f1(int a = 10)
{
cout << "f(int a)" << endl;
}

int main()
{
	f1
	
	
	
	();
}



	